const obj ={
    '(':')',
    '[':']',
    '{':'}'
}
let s="([{}])"
//字符串从左往右但凡是朝左的的括号，就入栈，但凡碰到过朝右的括号，就出栈一个元素
//每一个出栈的元素都到obj中查找另一半
//再和右边比较
var isValid = function(s) {

    var stack = [];
    for(let i=0;i<s.length;i++){
        if(s[i]==='('||s[i]==='['||s[i]==='{'){
            stack.push(s[i])
        }
        else{
            let left = stack.pop();//出栈
            let right = obj[left];//在obj中查找
            if(right!==s[i]){//如果不匹配
                return false;
            }
        }
    }
    return stack.length===0?true:false;
}
console.log(isValid(s));

